package com.kantboot.system.user.service;

import com.kantboot.system.user.domain.vo.LoginVO;

public interface ISysLoginService {

    /**
     * 注册
     * @param username 用户名
     * @param password 密码
     * @return 登录VO
     */
    LoginVO register(String username, String password);

    /**
     * 登录
     * @param username 用户名
     * @param password 密码
     * @return 登录VO
     */
    LoginVO login(String username, String password);


    /**
     * 注册（安全）
     * @param username 用户名
     * @param password 密码
     * @return 登录VO
     */
    LoginVO registerWithSecurity(String username, String password);

    /**
     * 登录（安全）
     * @param username 用户名
     * @param password 密码
     * @return 登录VO
     */
    LoginVO loginWithSecurity(String username, String password);

    /**
     * 登出
     */
    void logout();

    /**
     * 手机号+密码登录
     */
    LoginVO loginWithPhoneAndPassword(String phone, String password);

    /**
     * 手机号+密码登录（安全）
     */
    LoginVO loginWithPhoneAndPasswordWithSecurity(String phone, String password);

    /**
     * 邮箱+密码登录
     */
    LoginVO loginWithEmailAndPassword(String email, String password);

    /**
     * 邮箱+密码登录（安全）
     */
    LoginVO loginWithEmailAndPasswordWithSecurity(String email, String password);

    /**
     * 手机号+验证码登录
     */
    LoginVO loginWithPhoneAndVarCode(String phone, String varCode);

    /**
     * 手机号+验证码登录（安全）
     */
    LoginVO loginWithPhoneAndVarCodeWithSecurity(String phone, String varCode);

    /**
     * 邮箱+验证码登录
     */
    LoginVO loginWithEmailAndVarCode(String email, String varCode);

    /**
     * 邮箱+验证码登录（安全）
     */
    LoginVO loginWithEmailAndVarCodeWithSecurity(String email, String varCode);

    /**
     * 手机号+验证码注册
     */
    LoginVO registerWithPhoneAndVarCode(String phone, String varCode, String password);

    /**
     * 手机号+验证码注册（安全）
     */
    LoginVO registerWithPhoneAndVarCodeWithSecurity(String phone, String varCode, String password);

    /**
     * 邮箱+验证码注册
     */
    LoginVO registerWithEmailAndVarCode(String email, String varCode, String password);

    /**
     * 邮箱+验证码注册（安全）
     */
    LoginVO registerWithEmailAndVarCodeWithSecurity(String email, String varCode, String password);



}
